1. Field
This disclosure generally relates to the configuration of a device. More particularly, the disclosure relates to the personalization of a device.
2. General Background
A variety of manufacturing processes and message protocols are currently utilized to personalize, i.e., make unique, communication devices such mobile devices, set top boxes, cable modems, and the like. These manufacturing processes and message protocols are generally distinct from one another, yet share certain similarities. During the personalization process, a plurality of devices may share some messages. These messages may be core technology based specific security personalization data messages that are specific to some products and/or common manufacturing test messages that are utilized to verify that the device is operating correctly utilizing the personalization data that has been loaded.
However, differences among the various devices, which share the messages, may cause divergences and discrepancies in the personalization process. For instance, one device may have a different product/factory configuration from another. As a result, one device may utilize one set of protocols and message layers while another device utilizes a different set of protocols and message layers. Further, a hardware component of one device may need to be personalized while a hardware component of another device may not need to be personalized. As an example, one device may only need an embedded security chip to be personalized while another device may need both an embedded host module and an embedded security chip to be personalized. In addition, one device may utilize a different message path than another device. As an example, a RS232/fiber serial link may be utilized by one device while a modem may be utilized by another device. As a result, different message retransmission mechanisms may be utilized for different message paths and error conditions. Finally, one device may utilize a different security mechanism than another device because different security chips may be used. For instance, one device may utilize an encryption key and an authentication key having a first size while another device utilizes an encryption key and an authentication key having a second size that is smaller than the first size. Further, the encryption algorithm utilized by one device may be different than the encryption algorithm utilized by another device.
Software applications have been developed in an attempt to address these divergences and discrepancies. However, the development of additional software applications created new problems. For instance, the development time for adding a new software functionality to the existing code to address the divergences and discrepancies would normally take an additional amount of time. This additional time is often too significant for devices that need to be launched quickly. Further, validation/test code is needed for the software application. The validation/test code is separate from the software application and, thereby, involves additional time to the time needed to develop the software application. The validation/test code is utilized for both product verification and as a stress test tool in the laboratory to avoid the need of utilizing real devices for regression testing of the main application code. Further, any feature enhancement and bug fix needs to be duplicated in different applications and retested. In addition, any change in manufacturing related parameters and configurations requires a code change. The code change may lead to a separate software update and deployment in the field that would require the time and resources to complete the task. Further, the separate software update and deployment may carry the possibility of new bugs and/or errors that could disrupt the production process.